<!DOCTYPE html>
<!--

	Modified template for STM32CubeMX.AI purpose

	d0.1: 	jean-michel.delorme@st.com
			add ST logo and ST footer

	d2.0: 	jean-michel.delorme@st.com
			add sidenav support

	d2.1: 	jean-michel.delorme@st.com
			clean-up + optional ai_logo/ai meta data
			
==============================================================================
           "GitHub HTML5 Pandoc Template" v2.1 — by Tristano Ajmone           
==============================================================================
Copyright © Tristano Ajmone, 2017, MIT License (MIT). Project's home:

- https://github.com/tajmone/pandoc-goodies

The CSS in this template reuses source code taken from the following projects:

- GitHub Markdown CSS: Copyright © Sindre Sorhus, MIT License (MIT):
  https://github.com/sindresorhus/github-markdown-css

- Primer CSS: Copyright © 2016-2017 GitHub Inc., MIT License (MIT):
  http://primercss.io/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The MIT License 

Copyright (c) Tristano Ajmone, 2017 (github.com/tajmone/pandoc-goodies)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
Copyright (c) 2017 GitHub Inc.

"GitHub Pandoc HTML5 Template" is Copyright (c) Tristano Ajmone, 2017, released
under the MIT License (MIT); it contains readaptations of substantial portions
of the following third party softwares:

(1) "GitHub Markdown CSS", Copyright (c) Sindre Sorhus, MIT License (MIT).
(2) "Primer CSS", Copyright (c) 2016 GitHub Inc., MIT License (MIT).

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
==============================================================================-->
<html>
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>Release Note - X-Cube-AI 5.2.0</title>
  <style type="text/css">
.markdown-body{
	-ms-text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
	color:#24292e;
	font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
	font-size:16px;
	line-height:1.5;
	word-wrap:break-word;
	box-sizing:border-box;
	min-width:200px;
	max-width:980px;
	margin:0 auto;
	padding:45px;
	}
.markdown-body a{
	color:#0366d6;
	background-color:transparent;
	text-decoration:none;
	-webkit-text-decoration-skip:objects}
.markdown-body a:active,.markdown-body a:hover{
	outline-width:0}
.markdown-body a:hover{
	text-decoration:underline}
.markdown-body a:not([href]){
	color:inherit;text-decoration:none}
.markdown-body strong{font-weight:600}
.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{
	margin-top:24px;
	margin-bottom:16px;
	font-weight:600;
	line-height:1.25}
.markdown-body h1{
	font-size:2em;
	margin:.67em 0;
	padding-bottom:.3em;
	border-bottom:1px solid #eaecef}
.markdown-body h2{
	padding-bottom:.3em;
	font-size:1.5em;
	border-bottom:1px solid #eaecef}
.markdown-body h3{font-size:1.25em}
.markdown-body h4{font-size:1em}
.markdown-body h5{font-size:.875em}
.markdown-body h6{font-size:.85em;color:#6a737d}
.markdown-body img{border-style:none}
.markdown-body svg:not(:root){
	overflow:hidden}
.markdown-body hr{
	box-sizing:content-box;
	height:.25em;
	margin:24px 0;
	padding:0;
	overflow:hidden;
	background-color:#e1e4e8;
	border:0}
.markdown-body hr::before{display:table;content:""}
.markdown-body hr::after{display:table;clear:both;content:""}
.markdown-body input{margin:0;overflow:visible;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit}
.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}
.markdown-body *{box-sizing:border-box}.markdown-body blockquote{margin:0}
.markdown-body ol,.markdown-body ul{padding-left:2em}
.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}
.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}
.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}
.markdown-body li>p{margin-top:16px}
.markdown-body li+li{margin-top:.25em}
.markdown-body dd{margin-left:0}
.markdown-body dl{padding:0}
.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}
.markdown-body dl dd{padding:0 16px;margin-bottom:16px}
.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace}
.markdown-body pre{font:12px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;word-wrap:normal}
.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}
.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}
.markdown-body blockquote>:first-child{margin-top:0}
.markdown-body blockquote>:last-child{margin-bottom:0}
.markdown-body table{display:block;width:100%;overflow:auto;border-spacing:0;border-collapse:collapse}
.markdown-body table th{font-weight:600}
.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}
.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}
.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}
.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}
.markdown-body code{padding:.2em 0;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}
.markdown-body code::after,.markdown-body code::before{letter-spacing:-.2em;content:"\00a0"}
.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:0 0;border:0}
.markdown-body .highlight{margin-bottom:16px}
.markdown-body .highlight pre{margin-bottom:0;word-break:normal}
.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}
.markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}
.markdown-body pre code::after,.markdown-body pre code::before{content:normal}
.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}
.markdown-body kbd{box-shadow:inset 0 -1px 0 #959da5;display:inline-block;padding:3px 5px;font:11px/10px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;color:#444d56;vertical-align:middle;background-color:#fcfcfc;border:1px solid #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}
.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}
.markdown-body .task-list-item{list-style-type:none}
.markdown-body .task-list-item+.task-list-item{margin-top:3px}
.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}
.markdown-body::before{display:table;content:""}
.markdown-body::after{display:table;clear:both;content:""}
.markdown-body>:first-child{margin-top:0!important}
.markdown-body>:last-child{margin-bottom:0!important}
.Alert,.Error,.Note,.Success,.Warning{padding:11px;margin-bottom:24px;border-style:solid;border-width:1px;border-radius:4px}
.Alert p,.Error p,.Note p,.Success p,.Warning p{margin-top:0}
.Alert p:last-child,.Error p:last-child,.Note p:last-child,.Success p:last-child,.Warning p:last-child{margin-bottom:0}
.Alert{color:#246;background-color:#e2eef9;border-color:#bac6d3}
.Warning{color:#4c4a42;background-color:#fff9ea;border-color:#dfd8c2}
.Error{color:#911;background-color:#fcdede;border-color:#d2b2b2}
.Success{color:#22662c;background-color:#e2f9e5;border-color:#bad3be}
.Note{color:#2f363d;background-color:#f6f8fa;border-color:#d5d8da}
.Alert h1,.Alert h2,.Alert h3,.Alert h4,.Alert h5,.Alert h6{color:#246;margin-bottom:0}
.Warning h1,.Warning h2,.Warning h3,.Warning h4,.Warning h5,.Warning h6{color:#4c4a42;margin-bottom:0}
.Error h1,.Error h2,.Error h3,.Error h4,.Error h5,.Error h6{color:#911;margin-bottom:0}
.Success h1,.Success h2,.Success h3,.Success h4,.Success h5,.Success h6{color:#22662c;margin-bottom:0}
.Note h1,.Note h2,.Note h3,.Note h4,.Note h5,.Note h6{color:#2f363d;margin-bottom:0}
.Alert h1:first-child,.Alert h2:first-child,.Alert h3:first-child,.Alert h4:first-child,.Alert h5:first-child,.Alert h6:first-child,.Error h1:first-child,.Error h2:first-child,.Error h3:first-child,.Error h4:first-child,.Error h5:first-child,.Error h6:first-child,.Note h1:first-child,.Note h2:first-child,.Note h3:first-child,.Note h4:first-child,.Note h5:first-child,.Note h6:first-child,.Success h1:first-child,.Success h2:first-child,.Success h3:first-child,.Success h4:first-child,.Success h5:first-child,.Success h6:first-child,.Warning h1:first-child,.Warning h2:first-child,.Warning h3:first-child,.Warning h4:first-child,.Warning h5:first-child,.Warning h6:first-child{margin-top:0}
h1.title,p.subtitle{text-align:center}
h1.title.followed-by-subtitle{margin-bottom:0}
p.subtitle{font-size:1.5em;font-weight:600;line-height:1.25;margin-top:0;margin-bottom:16px;padding-bottom:.3em}
div.line-block{white-space:pre-line}
  </style>
  <style type="text/css">code{white-space: pre;}</style>
  <style type="text/css">:root { --main-hx-color: rgb(0,32,88); --sidenav-font-size: 90%;}html {}* {xbox-sizing: border-box;}.st_header h1.title,.st_header p.subtitle {text-align: left;}.st_header h1.title {color: var(--main-hx-color)}.st_header p.subtitle {color: var(--main-hx-color)}.st_header h1.title.followed-by-subtitle {margin-bottom:5px;}.st_header p.revision {display: inline-block;width:70%;}.st_header div.author {font-style: italic;}.st_header div.summary {border-top: solid 1px #C0C0C0;background: #ECECEC;padding: 5px;}.st_footer img {float: right;}.markdown-body #header-section-number {font-size:120%;}.markdown-body h1 {border-bottom:1px solid #74767a;padding-bottom: 2px;padding-top: 10px;}.markdown-body h2 {padding-bottom: 5px;padding-top: 10px;}.markdown-body h2 code {background-color: rgb(255, 255, 255);}#func.sourceCode {border-left-style: solid;border-color: rgb(0, 32, 82);border-color: rgb(255, 244, 191);border-width: 8px;padding:0px;}pre > code {border: solid 1px blue;font-size:60%;}codeXX {border: solid 1px blue;font-size:60%;}#func.sourceXXCode::before {content: "Synopsis";padding-left:10px;font-weight: bold;}figure {padding:0px;margin-left:5px;margin-right:5px;margin-left: auto;margin-right: auto;}img[data-property="center"] {display: block;margin-top: 10px;margin-left: auto;margin-right: auto;padding: 10px;}figcaption {text-align:left;  border-top: 1px dotted #888;padding-bottom: 20px;margin-top: 10px;}section.st_footer {font-size:80%;}div.stnotice {width:80%;}h1 code, h2 code {font-size:120%;}	.markdown-body table {width: 100%;margin-left:auto;margin-right:auto;}.markdown-body img {border-radius: 4px;padding: 5px;display: block;margin-left: auto;margin-right: auto;width: auto;}.markdown-body .st_header img, .markdown-body {border: none;border-radius: none;padding: 5px;display: block;margin-left: auto;margin-right: auto;width: auto;box-shadow: none;}.markdown-body {margin: 10px;padding: 10px;width: auto;font-family: "Arial", sans-serif;color: #03234B;}.markdown-body h1, .markdown-body h2, .markdown-body h3 {   color: var(--main-hx-color)}.markdown-body:hover {}.markdown-body .contents {}.markdown-body .toc-title {}.markdown-body .contents li {list-style-type: none;}.markdown-body .contents ul {padding-left: 10px;}.markdown-body .contents a {color: #3CB4E6; }.sidenav {font-family: "Arial", sans-serif;font-family: segoe ui, verdona;color: #3CB4E6; color: #03234B; color: var(--main-hx-color);height: 100%;position: fixed;z-index: 1;top: 0;left: 0;margin-right: 10px;margin-left: 10px; overflow-x: hidden;}hr.new1 {border-width: thin;border-top: 1px solid #3CB4E6; margin-right: 10px;margin-top: -10px;}.sidenav #sidenav_header {margin-top: 10px;border: 1px;}.sidenav #sidenav_header img {float: left;}.sidenav #sidenav_header a {margin-left: 0px;margin-right: 0px;padding-left: 0px;color: #3CB4E6; color: #03234B; color: var(--main-hx-color)}.sidenav #sidenav_header a:hover {background-size: auto;color: #FFD200; }.sidenav #sidenav_header a:active {  }.sidenav > ul {background-color: rgba(57, 169, 220, 0.05);border-radius: 10px;padding-bottom: 10px;padding-top: 10px;padding-right: 10px;margin-right: 10px;}.sidenav a {padding: 2px 2px;text-decoration: none;font-size: var(--sidenav-font-size);  display:table;}.sidenav > ul > li,.sidenav > ul > li > ul > li { padding-right: 5px;padding-left: 5px;}.sidenav > ul > li > a { color: #03234B;  color: var(--main-hx-color)}.sidenav > ul > li > ul > li > a { color: #03234B; color: #3CB4E6; color: #03234B; font-weight: lighter;padding-left: 10px;}.sidenav > ul > li > ul > li > ul > li > a { display: None;}.sidenav li {list-style-type: none;}.sidenav ul {padding-left: 0px;}.sidenav > ul > li > a:hover,.sidenav > ul > li > ul > li > a:hover {background-color: rgba(70, 70, 80, 0.1); background-clip: border-box;margin-left: -10px;padding-left: 10px;}.sidenav > ul > li > a:hover {padding-right: 15px;width: 230px;	}.sidenav > ul > li > ul > li > a:hover {padding-right: 10px;width: 230px;	}.sidenav > ul > li > a:active { color: #FFD200; }.sidenav code {}.sidenav {width: 280px;}#sidenav {margin-left: 300px;display:block;}.markdown-body .print-contents {visibility:hidden;}.markdown-body .print-toc-title {visibility:hidden;}.markdown-body {max-width: 980px;min-width: 200px;padding: 40px;border-style: solid;border-style: outset;border-color: rgba(104, 167, 238, 0.089);border-radius: 5px;}@media screen and (max-height: 450px) {.sidenav {padding-top: 15px;}.sidenav a {font-size: 18px;}#sidenav {margin-left: 10px; }.sidenav {visibility:hidden;}.markdown-body {margin: 10px;padding: 40px;width: auto;border: 0px;}}@media screen and (max-width: 1024px) {.sidenav {visibility:hidden;}.markdown-body {margin: 10px;padding: 40px;width: auto;border: 0px;}#sidenav {margin-left: 10px;}}@media print {.sidenav {visibility:hidden;}#sidenav {margin-left: 10px;}.markdown-body {margin: 10px;padding: 10px;width:auto;border: 0px;}@page {size: A4;  margin:2cm;padding:2cm;margin-top: 1cm;padding-bottom: 1cm;}* {xbox-sizing: border-box;font-size:90%;}a {font-size: 100%;color: yellow;}.markdown-body article {xbox-sizing: border-box;font-size:100%;}.markdown-body p {windows: 2;orphans: 2;}.pagebreakerafter {page-break-after: always;padding-top:10mm;}.pagebreakbefore {page-break-before: always;}h1, h2, h3, h4 {page-break-after: avoid;}div, code, blockquote, li, span, table, figure {page-break-inside: avoid;}}</style>
  <!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
  <![endif]-->




<link href="" rel="shortcut icon">

</head>



<body>

		<div class="sidenav">
		<div id="sidenav_header">
							<img src="" title="STM32CubeMX.AI logo" align="left" height="70" />
										<br />5.2.0<br />
										<a href="#doc_title"> Release Note - X-Cube-AI 5.2.0 </a>
					</div>
		<div id="sidenav_header_button">
			 
							<ul>
					<li><p><a id="index" href="index.html">[ Index ]</a></p></li>
				</ul>
						<hr class="new1">
		</div>	

		<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#customer-support">Customer support</a></li>
<li><a href="#software-updates">Software updates</a></li>
<li><a href="#general-information">General information</a><ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#host-pc-system-requirements">Host PC system requirements</a></li>
<li><a href="#software-requirements">Software requirements</a></li>
<li><a href="#license">License</a></li>
</ul></li>
<li><a href="#what-is-new-in-x-cube-ai-v5.2.0">What is new in X-Cube-AI V5.2.0?</a><ul>
<li><a href="#enhancements-and-new-features">Enhancements and new features</a></li>
<li><a href="#major-bug-fixes">Major bug fixes</a></li>
</ul></li>
<li><a href="#previous-releases">Previous releases</a><ul>
<li><a href="#what-is-new-in-x-cube-ai-v5.1">What is new in X-Cube-AI V5.1?</a></li>
<li><a href="#what-is-new-in-x-cube-ai-v5.0.0">What is new in X-Cube-AI V5.0.0?</a></li>
<li><a href="#what-is-new-in-x-cube-ai-v4.1.0">What is new in X-Cube-AI V4.1.0?</a></li>
<li><a href="#what-is-new-in-x-cube-ai-v4.0.0">What is new in X-Cube-AI V4.0.0?</a></li>
<li><a href="#what-is-new-in-x-cube-ai-v3.4.0">What is new in X-Cube-AI V3.4.0?</a></li>
</ul></li>
</ul>
	</div>
	<article id="sidenav" class="markdown-body">
	


<header>
<section class="st_header" id="doc_title">

<div class="himage">
	<img src="" title="STM32CubeMX.AI" align="right" height="70" />
	<img src="" title="STM32" align="right" height="90" />
</div>

<h1 class="title followed-by-subtitle">Release Note - X-Cube-AI 5.2.0</h1>

	<p class="subtitle">X-CUBE-AI Expansion Package</p>


	<div class="ai_platform">
		AI PLATFORM r5.2.0
					(Embedded Inference Client API 1.1.0)
			</div>
			Command Line Interface r1.4.0
	




</section>
</header>




<section id="introduction" class="level1">
<h1>Introduction</h1>
<p>This release note is updated periodically to keep abreast of X-Cube-AI evolution, problems and limitations. Check STMicroelectronics support website at <a href="www.st.com/x-cube">www.st.com/x-cube</a> for the latest version. Refer to next table for the latest release summary.</p>
<table>
<colgroup>
<col style="width: 21%"></col>
<col style="width: 78%"></col>
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;">Type</th>
<th style="text-align: left;">Summary</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Minor release</td>
<td style="text-align: left;">- adding support for <a href="relocatable.html"><strong>relocatable binary model</strong></a><br />
- TFLite and Keras importers are now fully based on <strong>TensorFlow 2.3</strong><br />
- remove the Keras.io support<br />
- up-to Keras version 2.4.0 model can be imported<br />
- add support to allocate the output buffers in activations buffer<br />
- performance improvement (with conv2D int8) wherever weights location (in internal or external flash)<br />
- bugs fixes / <strong>no new operator</strong></td>
</tr>
</tbody>
</table>
<hr />
<div class="Error">
<p><strong>Note</strong> – The support of the following deprecated toolboxes is not maintained in future releases:</p>
<ul>
<li>Lasagne: <a href="https://lasagne.readthedocs.io/en/latest/">https://lasagne.readthedocs.io/en/latest/</a><br />
</li>
<li>Caffe: <a href="https://caffe.berkeleyvision.org/">https://caffe.berkeleyvision.org/</a><br />
</li>
<li>ConvNetJs: <a href="https://cs.stanford.edu/people/karpathy/convnetjs/">https://cs.stanford.edu/people/karpathy/convnetjs/</a></li>
</ul>
</div>
<div class="Warning">
<p><strong>Note</strong> – <em>Qm,n</em> arithmetic is a legacy support, it will be deprecated in future releases.</p>
</div>
</section>
<section id="customer-support" class="level1">
<h1>Customer support</h1>
<p>For more information or help concerning X-Cube-AI, contact the STMicroelectronics nearest sales office. For a complete list of STMicroelectronics offices and distributors, refer to the <a href="www.st.com">www.st.com</a> webpage.</p>
</section>
<section id="software-updates" class="level1">
<h1>Software updates</h1>
<p>Software updates and all the latest documentation can be downloaded from the STMicroelectronics microcontroller support <a href="www.st.com/stm32cube">www.st.com/stm32cube</a> webpage.</p>
</section>
<section id="general-information" class="level1">
<h1>General information</h1>
<section id="overview" class="level2">
<h2>Overview</h2>
<p><a href="https://www.st.com/en/embedded-software/x-cube-ai.html">X-Cube-AI</a> is a tool provided to help customers to:</p>
<ul>
<li>Generate STM32 code from a python neural network described using Keras, Lasagne, Caffe, ConvNetJS or Tensorflow Lite.</li>
<li>Analyze the network and see if it fits on the target.</li>
<li>Validate the generated C code on the PC or on the target against the original model</li>
</ul>
</section>
<section id="host-pc-system-requirements" class="level2">
<h2>Host PC system requirements</h2>
<p>Supported operating systems and architectures</p>
<ul>
<li>Windows 10 64-bit (x64)</li>
<li>Linux (tested on RedHat, Fedora and Ubuntu 16.04) 64 bits</li>
<li>macOS (minimum version High Sierra)</li>
</ul>
</section>
<section id="software-requirements" class="level2">
<h2>Software requirements</h2>
<p>X-Cube-AI works as an extension (pack) of STM32CubeMX. It requires STM32CubeMX 5.0.1 or newer versions</p>
</section>
<section id="license" class="level2">
<h2>License</h2>
<p><a href="https://www.st.com/resource/en/license_agreement/dm00218346.pdf">STM32CubeMX is delivered under the Mix Ultimate Liberty+OSS+3rd-party V1 software license agreement (SLA0048)</a>.</p>
<hr />
</section>
</section>
<section id="what-is-new-in-x-cube-ai-v5.2.0" class="level1">
<h1>What is new in X-Cube-AI V5.2.0?</h1>
<section id="enhancements-and-new-features" class="level2">
<h2>Enhancements and new features</h2>
<ul>
<li>Enhancements of the User Interface
<ul>
<li>add UI options and update the project generation to test and to validate a relocatable binary model
<ul>
<li>same level of features for the aiValidation and aiSystemPerformance test applications (only multiple networks is not supported in this case)</li>
<li>GNU ARM Embedded tool-chain is automatically downloaded if not available</li>
</ul></li>
<li>add new UI button (Advanced Settings)
<ul>
<li>define the user output directory for the generated files (reports, data, ..)<br />
</li>
<li>check box to allocate the outputs in the activation buffer</li>
</ul></li>
</ul></li>
<li>TF Lite and Keras model support
<ul>
<li>for the import and the validation of the TF Lite and Keras models, TensorFlow 2.3.0 package is used.
<ul>
<li>provide a better support of the TFLite models generated with TFLiteConverter 2.2 and later</li>
</ul></li>
<li>Keras.io support has been removed (TF_KERAS environment variable is no more available)
<ul>
<li>Keras NCHW models can be no more validated (code generation is always supported)</li>
<li>Up-to Keras 2.4.0 models can be imported</li>
</ul></li>
</ul></li>
<li>Inference run-time library
<ul>
<li>performance improvement (with conv2D int8) wherever weights location (in internal or external flash)</li>
</ul></li>
<li>Code generation
<ul>
<li>add new “generate” options to be able to generate a relocatable binary model - bz80560/bz80557</li>
<li>for the split of the weights, each c-array is now prefixed with the name of the model to facilitate the data placement with IAR tool-chain. “static” keyword has been removed - bz89998/bz90000</li>
<li>outputs buffers can be allocated in the activations/working buffer - bz89643</li>
</ul></li>
<li>Validation process
<ul>
<li>add percentage of execution time by layer in the report for the validation of target</li>
<li>add the computation of the L2r metric systematically</li>
<li>add name/shape of the output tensor</li>
</ul></li>
<li>Validation and System performance applications
<ul>
<li>re-work the source files to share the common functions between both applications and to avoid to mix STM32 specific code and the AI code.</li>
<li>both are now fully based on the Platform Observer API
<ul>
<li>no system heap is no more requested to use the aiValidation application test</li>
</ul></li>
<li>add support for relocatable binary model</li>
<li>remove warnings for STM32L5 compilation with ARM Compiler 6</li>
</ul></li>
<li>Embedded documentation
<ul>
<li>add new article for the relocatable binary model support</li>
<li>add new snippet code for the usage of the Platform Observer API
<ul>
<li>“End-of-process input buffer notification”</li>
<li>“Dumping intermediate output”</li>
</ul></li>
<li>fix typo and mismatch with the current release.</li>
</ul></li>
</ul>
</section>
<section id="major-bug-fixes" class="level2">
<h2>Major bug fixes</h2>
<ul>
<li>fix/improve support of TFlite reshape operator before FC operator (dim &gt; 2) - bz93218</li>
<li>add support to align_corners attribute of TFLite ResizeNearestNeighbor operator (TF2.3)</li>
<li>improve the optimization step to remove the redundant conversions (code gen) - bz88996/bz92379</li>
<li>(minor) reinforce the coherency check of the output types before calculation of the metrics</li>
<li>fix ONNX importer for the reshape layer</li>
<li>fix/improve memory allocator for specific corner case - bz88995</li>
<li>(minor) report clear error when the output or workspace option is passed w/o argument - bz89157</li>
<li>fix/improve reported information of the IO model (corner case)</li>
<li>improve the execution time for the conv2d float kernel when the weights are located in the STM32 internal flash</li>
<li>fix a bug in the final computation op for the optimized con2d pool integer kernel</li>
<li>(minor) - fix decimal separator for reported time value - bz90001</li>
<li>improve execution time of the clip nl operator - bz90289</li>
<li>fix overflow calculation issue in the integer operation when scales values are closed to zero: &lt; 10e-7 - bz90287</li>
<li>UI - fix code generation in advanced mode (simplify overall files copy) + fix Makefile generation</li>
<li>UI - fix keil generated project file for L5 (add DSP if not already there)</li>
<li>UI - fix report of the metrics (multiple outputs case) - bz93608</li>
<li>test applications - remove warnings for STM32L5 compilation with ARM Compiler 6</li>
</ul>
<hr />
</section>
</section>
<section id="previous-releases" class="level1">
<h1>Previous releases</h1>
<section id="what-is-new-in-x-cube-ai-v5.1" class="level2">
<h2>What is new in X-Cube-AI V5.1?</h2>
<ul>
<li>Enhancements of the User Interface
<ul>
<li>New graph to display the C-graph (operators and associated tensors)</li>
<li>New graph to display the usage of the “activations” buffer</li>
</ul></li>
<li>C-Code generation / network runtime library
<ul>
<li>Adding support to generate a c-array by weight/bias tensor</li>
<li>Adding textual c-graph description (operators and associated tensors) in the reports</li>
<li>Lighter network-runtime library support. Granularity of the inference kernel functions are aligned on the used integer scheme to decrease the final code size</li>
<li>Improvement of the memory peak usage (RAM and ROM size)</li>
<li>Improvement of the inference time of Convolution kernels (float and integer type) in particular when the weights are placed in a low latency memory device</li>
</ul></li>
<li>Embedded inference client API extension
<ul>
<li>Adding platform observer API</li>
</ul></li>
<li>Validation
<ul>
<li>Adding support for int8/uint8 validation files</li>
</ul></li>
<li>System performance application
<ul>
<li>Adding executing time by layer</li>
</ul></li>
<li>Documentation
<ul>
<li>Adding specific article for the quantization aspects</li>
</ul></li>
</ul>
<section id="major-bug-fixes-and-improvement" class="level3">
<h3>Major bug fixes and improvement</h3>
<ul>
<li>adding ONNX Softmax, Hardmax, LogSoftmax, Resize operators</li>
<li>upgrading subset of operators up-to Opset to 10 support of ONNX 1.6</li>
<li>adding batch normalization and mul/add support for integer layers</li>
<li>adding Keras simple RNNs support</li>
<li>adding support for quantized concat operator</li>
<li>removing system heap usage for recurrent layers</li>
<li>fixing support for Keras GRU/LSTM/RNN layers when use_bias==False</li>
<li>fixing support for Keras GRU/LSTM layers with non-default nonlinear function</li>
<li>fixing ONNX shape interpretation (Concat and Slice) for 2D tensors</li>
<li>fixing duplicated inputs for element-wise operators</li>
<li>fixing support for TFLite/ONNX model with multiple IO</li>
<li>fixing MACC calculation for ONNX GEMM layer</li>
<li>improving parsing of TFLite reshape operator</li>
<li>fixing parsing of Keras RepeatVector operator</li>
</ul>
</section>
</section>
<section id="what-is-new-in-x-cube-ai-v5.0.0" class="level2">
<h2>What is new in X-Cube-AI V5.0.0?</h2>
<ul>
<li>Support of ONNX floating-point network
<ul>
<li>A subset of operators from Opset 7, 8 and 9 of ONNX 1.6 is supported</li>
</ul></li>
<li>Adding “per-channel” support for quantized model
<ul>
<li>Enhanced support for Post-quantized and training-aware TensorFlow lite models</li>
<li>Keras post-quantization process update</li>
</ul></li>
<li>Support of Mutiple IO network
<ul>
<li>Model for multiple IO are now fully supported</li>
</ul></li>
<li>Bug fixes and enhancement
<ul>
<li>Improvement of the RAM usage</li>
</ul></li>
</ul>
</section>
<section id="what-is-new-in-x-cube-ai-v4.1.0" class="level2">
<h2>What is new in X-Cube-AI V4.1.0?</h2>
<ul>
<li>Support of TensorFlow Lite quantized network
<ul>
<li>Support latest TensorFlow Lite quantized networks optimization, both floating point and integer quantized networks can be imported in the tool.</li>
</ul></li>
<li>Integer arithmetic for quantized model
<ul>
<li>X-Cube-AI has full support for integer quantized networks allowing to optimize flash memory usage and inference time while keeping a good accuracy. Keras post training quantization tool also supports integer quantization.</li>
</ul></li>
<li>Support of external memories:
<ul>
<li>The generated code can be configured to use external flash for weights or external ram for activations or weights.</li>
<li>This allows to run bigger networks</li>
<li>On ST STM32 boards the usage of external memories is fully plug and play</li>
</ul></li>
</ul>
</section>
<section id="what-is-new-in-x-cube-ai-v4.0.0" class="level2">
<h2>What is new in X-Cube-AI V4.0.0?</h2>
<ul>
<li>Support of TensorFlow Lite in floating point</li>
<li>Support of Keras network quantization</li>
<li>Enhancements of the User Interface
<ul>
<li>One click automated validation project build and run on the target</li>
<li>New graph display</li>
<li>New Logging window with cancel support that will give the results so far</li>
</ul></li>
<li>New command line interface allowing to perform the following actions on a neural network
<ul>
<li>analyze to give complexity, needed Flash and Ram size</li>
<li>generate the C code</li>
<li>validate on the desktop and on the target</li>
<li>quantize using the min/max or greedy algorithm</li>
</ul></li>
</ul>
</section>
<section id="what-is-new-in-x-cube-ai-v3.4.0" class="level2">
<h2>What is new in X-Cube-AI V3.4.0?</h2>
<ul>
<li>Bug fixes and enhancement in the user interface</li>
<li>Support of additional Keras layers:
<ul>
<li>DepthwiseConv1D: Depthwise 1D convolution</li>
<li>SeparableConv1D: Depthwise separable 1D convolution:</li>
</ul></li>
<li>Better support of Linux and MacOS</li>
</ul>
</section>
</section>



<section class="st_footer">

<h1> <br> </h1>

<p style="font-family:verdana; text-align:left;">
 Embedded Documentation 

	- <b> Release Note - X-Cube-AI 5.2.0 </b>
			<br> X-CUBE-AI Expansion Package
		
</p>

<img src="" title="ST logo" align="right" height="100" />

<div class="stnotice">
Information in this document is provided solely in connection with ST products.
The contents of this document are subject to change without prior notice.
<br>
© Copyright STMicroelectronics 2020. All rights reserved. <a href="http://www.st.com">www.st.com</a>
</div>

<hr size="1" />
</section>


</article>
</body>

</html>
